This invention relates, in general, to the processing of distributed transactions, and in particular, to avoiding message passing between units of recovery of a distributed transaction when performing syncpoint processing for the distributed transaction.
A transactional program running in one transaction monitor subsystem environment may require that resources be updated by a transactional program running in another subsystem environment. The other subsystem environment may be similar to the originating subsystem or different. In either of these cases, the separate programs are often tied together into a single transaction by using a distributed transaction protocol.
Distributed transaction protocols allow one transactional program to invoke other transactional programs, which reside either locally or non-locally to the initiating transactional program. The initiating transaction subsystem is referred to as the initiator, and the initiated transaction subsystems are referred to as agents. The initiator and all of the agents in a transaction are referred to herein as a coordinating group.
Further, distributed transaction protocols normally require that each participating subsystem participate in syncpoint processing, which includes performing transaction logging, for committed transactions. The initiating system typically has to harden (force to a persistent media) a commit record and each agent hardens at least an in-doubt record and a commit record. Some protocols even require additional log writes. When the initiator and the agents are in different systems, these log writes are needed so that transaction recovery will work, if any of the systems or the communication between the systems fails. When the initiator and the agents are on the same system, these log forces are still performed and used for recovery.
In one example, the syncpoint processing is performed using a technique that requires the various members in a coordinating group to communicate with one another during the syncpoint processing. This communication is even necessary when the various members in the coordinating group are controlled by the same transaction monitor subsystem. This is because in a distributed transaction the various members of a coordinating group act separately. Thus, messages are still passed among the members of the coordinating group, even when the members are the same transaction subsystem.
This communication during the syncpoint processing is very expensive. Thus, a need exists for an efficient technique for performing syncpoint processing of distributed transactions. In particular, a need exists for a technique that reduces communication between members of a coordinating group during the syncpoint process.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of performing syncpoint processing for distributed transactions of a computing environment. The method includes, for instance, executing a distributed transaction, in which the distributed transaction includes a plurality of units of recovery; and performing syncpoint processing for at least a portion of the plurality of units of recovery. The syncpoint processing is performed without passing messages between the at least a portion of the plurality of units of recovery.
In a further example, the performing of syncpoint processing includes employing a single unit of recovery of the plurality of units of recovery to represent the at least a portion of the plurality of units of recovery in the syncpoint processing.
In one example, interests of the at least a portion of the plurality of units of recovery are copied to the single unit of recovery to be used during the syncpoint processing. In other examples, one or more exits are driven from the single unit of recovery to at least initiate one or more phases of the syncpoint processing for the at least a portion of the plurality of units of recovery. In yet a further example, one or more votes for the at least a portion of the plurality of units of recovery are collected at the single unit of recovery. The one or more votes are responsive to the one or more exits.
In another aspect of the present invention, a method of performing syncpoint processing for distributed transactions of a computing environment is provided. The method includes, for instance, executing a distributed transaction, the distributed transaction comprising a plurality of units of recovery; and performing syncpoint processing for at least a multiple of the plurality of units of recovery, wherein a single syncpoint manager of the computing environment controls the syncpoint processing for the at least a multiple of the plurality of units of recovery.
System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.